package com.tianji.promotion.controller;


import com.tianji.common.domain.dto.PageDTO;
import com.tianji.promotion.domain.query.UserCouponQuery;
import com.tianji.promotion.domain.vo.CouponVO;
import com.tianji.promotion.service.IUserCouponService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 用户领取优惠券的记录，是真正使用的优惠券信息 前端控制器
 * </p>
 *
 * @author ffk
 * @since 2024-07-04
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/user-coupons")
public class UserCouponController {


    private final IUserCouponService userCouponService;

    /**
     * 领取发放中的优惠券
     * @param couponId 优惠券id
     */
    @ApiOperation("领取发放中的优惠券")
    @PostMapping("/{couponId}/receive")
    public void receiveCoupon(@PathVariable("couponId") Long couponId) {
        userCouponService.getIssueCoupon(couponId);
    }

    /**
     * 分页查询用户优惠券
     * @param userCouponQuery 优惠券状态，1：未使用，2：已使用，3：已过期
     */
    @ApiOperation("分页查询用户优惠券")
    @GetMapping("/page")
    public PageDTO<CouponVO> pageQueryUserCoupon(UserCouponQuery userCouponQuery) {
       return userCouponService.pageQueryUserCoupon(userCouponQuery);
    }

    @ApiOperation("兑换码兑换优惠券接口")
    @PostMapping("/{code}/exchange")
    public void exchangeCoupon(@PathVariable("code") String code){
        userCouponService.exchangeCoupon(code);
    }
}
